"""
定义一个简单类示例
"""
class Cat:

    def __init__(self, name):
        """
        对象的初始化方法
        类似其他编程语言中的构造方法
        """
        print("对象的初始化方法执行了")

        # 使用初始化方法指定属性默认值
        self.name = name


    def __str__(self):
        """
        类似其他编程语言中的toString()方法
        """
        return super().__str__() + " --> " + self.name


    def eat(self):
        # 哪一个对象调用方法，self 就是哪一个对象的引用，相当于 Java 类中的 this
        print("%s 爱吃鱼" % self.name)

    
    def drink(self):
        print("%s 要喝水" % self.name)


# 创建对象
# 没有 new 关键字
tom = Cat("Tom")
# 给对象添加属性并赋值
# tom.name = "大懒猫"
tom.eat()
tom.drink()

# <__main__.Cat object at 0x7f866006ed10>
# print(tom)

# 以十进制的方式显示对象的地址 140289202154960
# print("%d" % id(tom))

# 定义另外一个对象
lazy_cat = Cat("大懒猫")
lazy_cat.eat()
lazy_cat.drink()

# 使用 __str__ 改写对象默认输出的方法
print(lazy_cat)
